import numpy as np
%matplotlib notebook
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
import ipywidgets as widgets
from maux import *
hide_interactive_toolbars()
from mtest import true_false_test
Nakreslenie grafu a vyšetrenie priebehu elementárnej funkcie danej rovnicou $$y = \frac{x^2}{2} - 2x - \ln\sqrt{x^2 + 1} + 3\arctan x.$$ Pri vyšetrovani priebehu funkcie treba určiť:
def f(x): return x ** 2 / 2 - 2 * x - np.log(np.sqrt(x ** 2 + 1)) + 3 * np.arctan(x)
# vytvorí sa pole typu ndarray so 6 = 5+1 prvkami
# prvky tvoria uniformné delenie intervalu ⟨-2,3⟩ na 5 dielikov (podintervalov)
# každý dielik má veľkosť 1
X = np.array([-2., -1., 0., 1., 2., 3.])
# X = np.linspace(-2, 3, 5+1)
print(X)
[-2. -1. 0. 1. 2. 3.]
# funkcia f sa aplikuje na každý prvok poľa X, vytvorí sa nové pole typu ndarray
Y = np.array([f(-2.), f(-1.), f(0.), f(1.), f(2.), f(3.)])
# Y = np.array([f(x) for x in X])
# Y = f(X) # funkcia f funguje tiež ako vektorová operácia
print(Y)
[ 1.87383489 -0.20276808 0. 0.5096209 0.5167272 1.09584477]
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y, 'o')
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y)
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
# vytvorí sa pole typu ndarray s 11 = 5*2+1 prvkami
# prvky tvoria uniformné delenie intervalu ⟨-2,3⟩ na 10 = 5*2 dielikov (podintervalov)
# každý dielik má veľkosť 1/2
X = np.linspace(-2, 3, 5*2+1)
print(X)
[-2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2. 2.5 3. ]
# funkcia f sa aplikuje na každý prvok poľa X, vytvorí sa nové pole typu ndarray
Y = f(X)
print(Y)
[ 1.87383489 0.58729133 -0.20276808 -0.3775146 0. 0.40437105 0.5096209 0.48405367 0.5167272 0.70536911 1.09584477]
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*2+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y, 'o')
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*2+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf a priebeh funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y)
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
# vytvorí sa pole typu ndarray s 51 = 5*10+1 prvkami
# prvky tvoria uniformné delenie intervalu ⟨-2,3⟩ na 50 = 5*10 dielikov (podintervalov)
# každý dielik má veľkosť 1/10
X = np.linspace(-2, 3, 5*10+1)
print(X)
[-2. -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1. -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3. ]
# funkcia f sa aplikuje na každý prvok poľa X, vytvorí sa nové pole typu ndarray
Y = f(X)
print(Y)
[ 1.87383489 1.58193088 1.3066249 1.04857864 0.80852869 0.58729133 0.38576484 0.2049273 0.04582683 -0.09044006 -0.20276808 -0.29010873 -0.35157095 -0.38656595 -0.39500085 -0.3775146 -0.33572913 -0.27245923 -0.19179704 -0.09898112 0. 0.09903079 0.19257632 0.27628154 0.34730913 0.40437105 0.44751615 0.47778983 0.49687471 0.50678188 0.5096209 0.50744754 0.50217513 0.4955315 0.48904589 0.48405367 0.48171076 0.4830122 0.48881183 0.49984126 0.5167272 0.5400068 0.5701411 0.60752642 0.65250418 0.70536911 0.76637631 0.83574704 0.91367372 1.0003241 1.09584477]
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*10+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y, '.')
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*10+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y)
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
# vytvorí sa pole typu ndarray s 501 = 5*100+1 prvkami
# prvky tvoria uniformné delenie intervalu ⟨-2,3⟩ na 500 = 5*100 dielikov (podintervalov)
# každý dielik má veľkosť 1/100
X = np.linspace(-2, 3, 5*100+1)
print(X)
[-2. -1.99 -1.98 -1.97 -1.96 -1.95 -1.94 -1.93 -1.92 -1.91 -1.9 -1.89 -1.88 -1.87 -1.86 -1.85 -1.84 -1.83 -1.82 -1.81 -1.8 -1.79 -1.78 -1.77 -1.76 -1.75 -1.74 -1.73 -1.72 -1.71 -1.7 -1.69 -1.68 -1.67 -1.66 -1.65 -1.64 -1.63 -1.62 -1.61 -1.6 -1.59 -1.58 -1.57 -1.56 -1.55 -1.54 -1.53 -1.52 -1.51 -1.5 -1.49 -1.48 -1.47 -1.46 -1.45 -1.44 -1.43 -1.42 -1.41 -1.4 -1.39 -1.38 -1.37 -1.36 -1.35 -1.34 -1.33 -1.32 -1.31 -1.3 -1.29 -1.28 -1.27 -1.26 -1.25 -1.24 -1.23 -1.22 -1.21 -1.2 -1.19 -1.18 -1.17 -1.16 -1.15 -1.14 -1.13 -1.12 -1.11 -1.1 -1.09 -1.08 -1.07 -1.06 -1.05 -1.04 -1.03 -1.02 -1.01 -1. -0.99 -0.98 -0.97 -0.96 -0.95 -0.94 -0.93 -0.92 -0.91 -0.9 -0.89 -0.88 -0.87 -0.86 -0.85 -0.84 -0.83 -0.82 -0.81 -0.8 -0.79 -0.78 -0.77 -0.76 -0.75 -0.74 -0.73 -0.72 -0.71 -0.7 -0.69 -0.68 -0.67 -0.66 -0.65 -0.64 -0.63 -0.62 -0.61 -0.6 -0.59 -0.58 -0.57 -0.56 -0.55 -0.54 -0.53 -0.52 -0.51 -0.5 -0.49 -0.48 -0.47 -0.46 -0.45 -0.44 -0.43 -0.42 -0.41 -0.4 -0.39 -0.38 -0.37 -0.36 -0.35 -0.34 -0.33 -0.32 -0.31 -0.3 -0.29 -0.28 -0.27 -0.26 -0.25 -0.24 -0.23 -0.22 -0.21 -0.2 -0.19 -0.18 -0.17 -0.16 -0.15 -0.14 -0.13 -0.12 -0.11 -0.1 -0.09 -0.08 -0.07 -0.06 -0.05 -0.04 -0.03 -0.02 -0.01 0. 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1. 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.2 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.3 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.4 1.41 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.5 1.51 1.52 1.53 1.54 1.55 1.56 1.57 1.58 1.59 1.6 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 1.69 1.7 1.71 1.72 1.73 1.74 1.75 1.76 1.77 1.78 1.79 1.8 1.81 1.82 1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93 1.94 1.95 1.96 1.97 1.98 1.99 2. 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.1 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.2 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.3 2.31 2.32 2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.4 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 2.49 2.5 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.6 2.61 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.7 2.71 2.72 2.73 2.74 2.75 2.76 2.77 2.78 2.79 2.8 2.81 2.82 2.83 2.84 2.85 2.86 2.87 2.88 2.89 2.9 2.91 2.92 2.93 2.94 2.95 2.96 2.97 2.98 2.99 3. ]
# funkcia f sa aplikuje na každý prvok poľa X, vytvorí sa nové pole typu ndarray
Y = f(X)
print(Y)
[ 1.87383489 1.84391498 1.81415564 1.78455743 1.75512093 1.72584672 1.69673539 1.66778754 1.63900376 1.61038467 1.58193088 1.55364301 1.5255217 1.49756757 1.46978128 1.44216347 1.41471479 1.38743593 1.36032753 1.33339029 1.3066249 1.28003204 1.25361241 1.22736673 1.20129572 1.17540009 1.14968058 1.12413793 1.09877288 1.0735862 1.04857864 1.02375098 0.999104 0.97463848 0.95035522 0.92625502 0.9023387 0.87860708 0.85506097 0.83170123 0.80852869 0.78554421 0.76274865 0.74014288 0.71772777 0.69550422 0.67347311 0.65163536 0.62999186 0.60854354 0.58729133 0.56623616 0.54537898 0.52472073 0.50426239 0.4840049 0.46394926 0.44409643 0.42444742 0.40500322 0.38576484 0.36673329 0.34790959 0.32929477 0.31088986 0.29269591 0.27471395 0.25694505 0.23939026 0.22205066 0.2049273 0.18802128 0.17133366 0.15486554 0.13861802 0.12259217 0.10678912 0.09120994 0.07585577 0.06072769 0.04582683 0.03115429 0.01671119 0.00249865 -0.01148222 -0.02523031 -0.0387445 -0.05202367 -0.06506673 -0.07787256 -0.09044006 -0.10276812 -0.11485566 -0.12670159 -0.13830482 -0.14966427 -0.1607789 -0.17164763 -0.18226942 -0.19264325 -0.20276808 -0.21264291 -0.22226676 -0.23163863 -0.24075758 -0.24962267 -0.25823297 -0.26658759 -0.27468565 -0.28252631 -0.29010873 -0.29743212 -0.30449572 -0.31129879 -0.31784062 -0.32412055 -0.33013795 -0.33589222 -0.34138281 -0.34660921 -0.35157095 -0.35626761 -0.36069883 -0.36486428 -0.3687637 -0.37239688 -0.37576366 -0.37886395 -0.38169773 -0.38426503 -0.38656595 -0.38860067 -0.39036944 -0.39187256 -0.39311046 -0.39408361 -0.39479256 -0.39523798 -0.3954206 -0.39534125 -0.39500085 -0.39440043 -0.3935411 -0.39242408 -0.3910507 -0.38942238 -0.38754067 -0.38540722 -0.38302378 -0.38039225 -0.3775146 -0.37439297 -0.37102959 -0.36742681 -0.36358712 -0.35951314 -0.3552076 -0.35067337 -0.34591344 -0.34093094 -0.33572913 -0.3303114 -0.32468127 -0.31884239 -0.31279854 -0.30655363 -0.30011171 -0.29347695 -0.28665364 -0.27964622 -0.27245923 -0.26509734 -0.25756534 -0.24986813 -0.24201074 -0.2339983 -0.22583604 -0.21752929 -0.20908351 -0.20050422 -0.19179704 -0.18296767 -0.17402191 -0.16496561 -0.15580469 -0.14654515 -0.13719302 -0.1277544 -0.11823543 -0.10864227 -0.09898112 -0.08925821 -0.07947976 -0.06965202 -0.05978123 -0.04987363 -0.03993542 -0.02997281 -0.01999196 -0.009999 0. 0.009999 0.01999204 0.02997322 0.0399367 0.04987675 0.0597877 0.06966399 0.07950015 0.08929084 0.09903079 0.10871489 0.11833813 0.12789562 0.13738263 0.14679454 0.15612688 0.16537534 0.17453572 0.18360401 0.19257632 0.20144895 0.21021832 0.21888103 0.22743385 0.23587368 0.24419761 0.25240287 0.26048688 0.26844719 0.27628154 0.2839878 0.29156402 0.29900841 0.30631933 0.31349529 0.32053495 0.32743713 0.33420079 0.34082504 0.34730913 0.35365244 0.35985451 0.36591498 0.37183365 0.37761042 0.38324532 0.38873852 0.39409027 0.39930095 0.40437105 0.40930116 0.41409197 0.41874426 0.42325891 0.42763689 0.43187924 0.43598709 0.43996166 0.44380423 0.44751615 0.45109883 0.45455377 0.45788248 0.46108659 0.46416772 0.46712758 0.46996792 0.47269051 0.4752972 0.47778983 0.48017032 0.48244058 0.48460259 0.48665832 0.48860978 0.490459 0.49220803 0.49385893 0.4954138 0.49687471 0.49824377 0.49952309 0.50071479 0.501821 0.50284383 0.50378542 0.5046479 0.50543338 0.50614401 0.50678188 0.50734913 0.50784785 0.50828016 0.50864813 0.50895386 0.50919941 0.50938685 0.50951822 0.50959557 0.5096209 0.50959623 0.50952356 0.50940485 0.50924207 0.50903716 0.50879205 0.50850866 0.50818886 0.50783454 0.50744754 0.50702971 0.50658287 0.50610881 0.5056093 0.50508612 0.50454099 0.50397563 0.50339176 0.50279104 0.50217513 0.50154568 0.5009043 0.50025259 0.49959213 0.49892448 0.49825118 0.49757374 0.49689367 0.49621243 0.4955315 0.49485232 0.49417629 0.49350482 0.4928393 0.49218108 0.4915315 0.4908919 0.49026358 0.48964782 0.48904589 0.48845904 0.48788851 0.48733551 0.48680123 0.48628686 0.48579356 0.48532247 0.48487472 0.48445142 0.48405367 0.48368255 0.48333911 0.48302441 0.48273948 0.48248532 0.48226295 0.48207335 0.48191748 0.4817963 0.48171076 0.48166178 0.48165027 0.48167713 0.48174325 0.48184949 0.48199672 0.48218578 0.4824175 0.48269271 0.4830122 0.48337677 0.48378721 0.48424429 0.48474876 0.48530136 0.48590285 0.48655393 0.48725532 0.48800772 0.48881183 0.48966833 0.49057787 0.49154113 0.49255876 0.49363139 0.49475965 0.49594416 0.49718553 0.49848437 0.49984126 0.5012568 0.50273154 0.50426607 0.50586092 0.50751666 0.50923382 0.51101294 0.51285453 0.51475911 0.5167272 0.51875928 0.52085585 0.5230174 0.52524441 0.52753734 0.52989665 0.53232281 0.53481626 0.53737745 0.5400068 0.54270476 0.54547174 0.54830816 0.55121443 0.55419095 0.55723813 0.56035635 0.563546 0.56680746 0.5701411 0.5735473 0.57702643 0.58057882 0.58420485 0.58790486 0.59167919 0.59552819 0.59945217 0.60345147 0.60752642 0.61167734 0.61590452 0.6202083 0.62458896 0.62904682 0.63358216 0.63819528 0.64288647 0.64765601 0.65250418 0.65743125 0.6624375 0.66752319 0.67268858 0.67793395 0.68325954 0.6886656 0.69415239 0.69972015 0.70536911 0.71109953 0.71691164 0.72280566 0.72878183 0.73484037 0.7409815 0.74720545 0.75351243 0.75990264 0.76637631 0.77293364 0.77957483 0.78630009 0.79310961 0.80000358 0.80698222 0.81404569 0.8211942 0.82842792 0.83574704 0.84315174 0.8506422 0.85821859 0.86588109 0.87362987 0.88146509 0.88938692 0.89739553 0.90549108 0.91367372 0.92194362 0.93030093 0.9387458 0.94727838 0.95589883 0.96460729 0.9734039 0.98228881 0.99126217 1.0003241 1.00947475 1.01871426 1.02804275 1.03746036 1.04696723 1.05656347 1.06624923 1.07602461 1.08588975 1.09584477]
#####
##### nakreslenie grafu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*100+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Graf funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
## pravoúhla sieť
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.grid(which='major')
ax.xaxis.set_minor_locator(MultipleLocator(1/10))
ax.yaxis.set_minor_locator(MultipleLocator(1/10))
ax.grid(which='minor', linewidth=1/3)
## graf funkcie
ax.plot(X, Y)
## legenda
# ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Funkcia nadobúda ostré minimum na intervale $\left\langle -1, 0 \right\rangle$. Jeho približnú x-ovú súradnicu vypočítame takto:
>>> I = X[(X >= -1) & (X <= 0)]
>>> I[f(I).argmin()]
Výsledok je -0.62
.
Súradnice ostrého lokálneho maxima je zrejmý z obrázka.
Funkcia nadobúda ostré lokálne minimum na intervale $\left\langle 1, 2 \right\rangle$. Jeho približnú x-ovú súradnicu vypočítame takto:
>>> I = X[(X >= 1) & (X <= 2)]
>>> I[f(I).argmin()]
Výsledok je 1.62
.
X = np.linspace(-2, 3, 5*100+1)
I = X[(X >= -1) & (X <= 0)]
I[f(I).argmin()]
-0.6199999999999999
X = np.linspace(-2, 3, 5*100+1)
I = X[(X >= 1) & (X <= 2)]
I[f(I).argmin()]
1.62
#####
##### vyšetrenie priebehu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*100+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Vyšetrenie priebehu funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.grid() # pravoúhla sieť
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
ax.set_yticks(np.linspace(0, 2, 2+1)) # kótovanie y-ovej osi
## x-ové súradnice extrémov funkcie vrátane krajných bodov základného intervalu
ps = [X[0], (1-np.sqrt(5))/2, 1, (1+np.sqrt(5))/2, X[-1]]
## extrémy funkcie
globmin = (ps[1], f(ps[1]))
ax.plot(globmin[0], globmin[1], 'o', label=r"ostré minimum v bode $-0,\!62$", zorder=2)
locmax = (ps[2], f(ps[2]))
ax.plot(locmax[0], locmax[1], 'o', label=r"ostré lokálne maximum", zorder=2)
locmin = (ps[3], f(ps[3]))
ax.plot(locmin[0], locmin[1], 'o', label=r"ostré lokálne minimum v bode $1,\!62$", zorder=2)
## intervaly, na ktorých je funkcia klesajúca
color = ax.plot([], [], label=r"klesajúca")[0].get_color()
for i in [0, 2]:
I = X[(ps[i] <= X) & (X <= ps[i+1])]
ax.plot(I, f(I), c=color, zorder=1)
## intervaly, na ktorých je funkcia rastúca
color = ax.plot([], [], label=r"rastúca")[0].get_color()
for i in [1, 3]:
I = X[(ps[i] <= X) & (X <= ps[i+1])]
ax.plot(I, f(I), c=color, zorder=1)
## legenda
ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Extrémy funkcie nájdeme pomocou nulových bodov jej derivácie $y'$. Je to funkcia definovaná predpisom $$y'(x) = \frac{x^3 - 2x^2 + 1}{x^2 + 1}.$$ Jeden nulový bod derivácie už poznáme, je ním číslo $1$. Ostatné nulové body získame touto úpravou $$ x^3 - 2x^2 + 1 = (x-1)(x^2-x-1) = (x-1)\left(x - \frac{1-\sqrt{5}}{2}\right)\left(x - \frac{1+\sqrt{5}}{2}\right) . $$ Nulové body derivácie: $$ y'(x) = 0 \Leftrightarrow \frac{x^3 - 2x^2 + 1}{x^2 + 1} = 0 \Leftrightarrow x^3 - 2x^2 + 1 = 0 \Leftrightarrow \\ x = \frac{1-\sqrt{5}}{2} \lor x = 1 \lor x = \frac{1+\sqrt{5}}{2} . $$ Funkcia tak nadobúda extrémy v týchto bodoch $\frac{1-\sqrt{5}}{2}$, $1$ a $\frac{1+\sqrt{5}}{2}$.
Poznámka. Platí $$\frac{1-\sqrt{5}}{2} = -0.6180339887\!\ldots, \qquad \frac{1+\sqrt{5}}{2} = 1.6180339887\!\ldots.$$
#####
##### vyšetrenie priebehu funkcie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*100+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 5) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Vyšetrenie priebehu funkcie $y = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.grid() # pravoúhla sieť
ax.set_ylim(-0.55, 2.15) # ohraničenie hodnôt pre os y
ax.set_yticks(np.linspace(0, 2, 2+1)) # kótovanie y-ovej osi
## x-ové súradnice extrémov funkcie vrátane krajných bodov základného intervalu
ps = [X[0], (1-np.sqrt(5))/2, 1, (1+np.sqrt(5))/2, X[-1]]
## extrémy funkcie
globmin = (ps[1], f(ps[1]))
ax.plot(globmin[0], globmin[1], 'o', label=r"ostré minimum v bode $\frac{1-\sqrt{5}}{2}$", zorder=2)
locmax = (ps[2], f(ps[2]))
ax.plot(locmax[0], locmax[1], 'o', label=r"ostré lokálne maximum", zorder=2)
locmin = (ps[3], f(ps[3]))
ax.plot(locmin[0], locmin[1], 'o', label=r"ostré lokálne minimum v bode $\frac{1+\sqrt{5}}{2}$", zorder=2)
## intervaly, na ktorých je funkcia klesajúca
color = ax.plot([], [], label=r"klesajúca")[0].get_color()
for i in [0, 2]:
I = X[(ps[i] <= X) & (X <= ps[i+1])]
ax.plot(I, f(I), c=color, zorder=1)
## intervaly, na ktorých je funkcia rastúca
color = ax.plot([], [], label=r"rastúca")[0].get_color()
for i in [1, 3]:
I = X[(ps[i] <= X) & (X <= ps[i+1])]
ax.plot(I, f(I), c=color, zorder=1)
## legenda
ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
To, že derivácia je správne vyrátaná, môžme overiť graficky. Skúška správnosti pozostáva z nakreslenia dotyčnice grafu funkcie pre vybrané body. Predpis pre dotyčnicu grafu funkcie $f$ v bode $[a,f(a)]$ má tvar $$y = f'(a) (x-a) + f(a).$$
#####
##### nakreslenie grafu funkcie a jej derivácie
#####
#### vstupné údaje
def f(X): return X ** 2 / 2 - 2 * X - np.log(np.sqrt(X ** 2 + 1)) + 3 * np.arctan(X) # ufunc verzia funkcie
X = np.linspace(-2, 3, 5*100+1) # výber hodnôt nezávislej premennej pre zaujímavú časť grafu
Y = f(X) # odpovedajúce hodnoty závislej premennej
def df(X): return (X ** 3 - 2 * X ** 2 + 1) / (X ** 2 + 1) # ufunc verzia derivácie
dX = X # tie prvky z X, ktoré patria do definičného oboru derivácie
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 9) # veľkosť obrázka (východzia hodnota je 6x4)
### diagram
init_subplot(ax) # inicializácia diagramu: vytvorí sa pravoúhla súradnicová sústava
ax.set_title(r"Derivácia funkcie") # pomenovanie diagramu
ax.set_aspect('equal') # nastavenie rovnakej mierky pre obe osi
ax.grid() # pravoúhla sieť
## graf funkcie
ax.plot(X, Y, label=r"funkcia $y(x) = \dfrac{x^2}{2} - 2x - \ln\,\sqrt{x^2 + 1} + 3\,\arctan\,x$")
## graf derivácie
ax.plot(dX, df(dX), label=r"derivácia $y'(x) = \dfrac{x^3 - 2x^2 + 1}{x^2 + 1}$")
## skúška správnosti
true_false_test(ax, f, dX, df)
## legenda
# ax.legend()
ax.legend(loc='lower right') # umiestenie v strede diagramu
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
HBox(children=(Label(value='x-ová súradnica bodu dotyku dotyčnice a grafu funkcie'), FloatSlider(value=0.5, ma…